package jdbc2;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;

/*
 * 使用JDBC连接数据库
 * */
public class JDBCDemo1 {
    public static void main(String[] args) throws Exception {
        /*
        * JDBC操作数据库的基本流程
        * 1:加载驱动
        * 2:使用驱动管理器建立链接
        * 3:通过链接创建语句对象
        * 4:使用语句对象执行SQL语句
        * 5:如果执行DQL则得到查询结果集
        * 6:遍历查询结果集
        * 7:关闭链接
        * */
        //1.加载驱动
        //JDBC有一个接口:Driver,不同数据库厂商提供的驱动包中都有该Driver的实现类
        //使用Driver目的是与对应的数据库建立连接
        Class.forName("com.mysql.cj.jdbc.Driver");

        //2.使用驱动管理器DriverManger使用上面加载的驱动与数据库建立连接
        Connection connection = DriverManager.getConnection(
                "jdbc:mysql://localhost:3306/tedu?" +
                        "characterEncoding=utf8&useSSL=false&serverTimezone=" +
                        "Asia/Shanghai&rewriteBatchedStatements=true",
                "root","20030501"
        );
        System.out.println("与数据库建立连接");

        //3.创建sql语句对象
        Statement statement = connection.createStatement();

        /*
        * 删除一张表hhh
        * DROP TABLE IF EXISTS hhh;
        *
        * 创建一张表
        * CREATE TABLE userinfo(
        *   id INT PRIMARY KEY AUTO_INCREMENT,
        *   username VARCHAR(30),
        *   password VARCHAR(30),
        *   nickname VARCHAR(30),
        *   age INT(3)
        * );
        * */

        //4.执行sql语句
        //4.1删除表
        String sql = "DROP TABLE IF EXISTS hhh;";
        int num = statement.executeUpdate(sql);
        if (num>0){
            System.out.println("表删除完毕!");
        }
        System.out.println(num);

        //4.2创建表
        sql = "CREATE TABLE userinfo(\n" +
                "  id INT PRIMARY KEY AUTO_INCREMENT,\n" +
                "  username VARCHAR(30),\n" +
                "  password VARCHAR(30),\n" +
                "  nickname VARCHAR(30),\n" +
                "  age INT(3)\n" +
                ");";
        statement.execute(sql);
        System.out.println("表创建完毕!");

        connection.close();
    }
}
